10 मिनट में Java सीखें
Java एक उच्च-स्तरीय, ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है जो अपने “एक बार लिखें, कहीं भी चलाएं” सिद्धांत के लिए जानी जाती है। यह ट्यूटोरियल Java 21+ की सुविधाओं को कवर करता है, जो आपको Java की मूल बातें जल्दी सीखने में मदद करता है।
1. अपना पहला Java प्रोग्राम लिखना
Java प्रोग्राम क्लासेस में व्यवस्थित होते हैं। आइए एक साधारण प्रोग्राम से शुरू करते हैं। HelloWorld.java
नाम की फाइल बनाएं:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
प्रोग्राम को कंपाइल करें और चलाएं:
javac HelloWorld.java
java HelloWorld
आउटपुट होगा:
Hello, World!
यह साधारण प्रोग्राम Java की मूल संरचना को दर्शाता है। हर Java प्रोग्राम में कम से कम एक क्लास होनी चाहिए, और main
मेथड एंट्री पॉइंट है।
2. मूल सिंटैक्स
Java सिंटैक्स संरचित है और विशिष्ट नियमों का पालन करता है:
// यह एक सिंगल-लाइन कमेंट है
/* यह एक
मल्टी-लाइन कमेंट है */
public class BasicSyntax {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}
Java में मूल सिंटैक्स नियम:
- केस सेंसिटिविटी: Java केस-सेंसिटिव है।
Variable
औरvariable
अलग हैं। - क्लास नाम: बड़े अक्षर से शुरू होना चाहिए और CamelCase कन्वेंशन का पालन करना चाहिए।
- मेथड नाम: छोटे अक्षर से शुरू होना चाहिए और camelCase कन्वेंशन का पालन करना चाहिए।
- सेमिकोलन: हर स्टेटमेंट का अंत सेमिकोलन
;
से होना चाहिए। - ब्रेसेस: कोड ब्लॉक्स को कर्ली ब्रेसेस
{}
से परिभाषित किया जाता है। - कमेंट्स: सिंगल-लाइन कमेंट्स के लिए
//
, मल्टी-लाइन कमेंट्स के लिए/* */
का उपयोग करें।
3. वेरिएबल्स और डेटा टाइप्स
Java एक स्टेटिकली टाइप्ड भाषा है, मतलब आपको वेरिएबल टाइप्स को स्पष्ट रूप से घोषित करना होगा।
वेरिएबल नेमिंग नियम:
- अक्षर, अंडरस्कोर
_
, या डॉलर साइन$
से शुरू होना चाहिए। - इसमें अक्षर, अंक, अंडरस्कोर, और डॉलर साइन हो सकते हैं।
- Java कीवर्ड्स नहीं हो सकते।
- camelCase कन्वेंशन का पालन करना चाहिए।
Java के प्रिमिटिव डेटा टाइप्स:
- byte: 8-बिट साइन्ड इंटीजर (-128 से 127)
- short: 16-बिट साइन्ड इंटीजर (-32,768 से 32,767)
- int: 32-बिट साइन्ड इंटीजर (-2^31 से 2^31-1)
- long: 64-बिट साइन्ड इंटीजर (-2^63 से 2^63-1)
- float: 32-बिट फ्लोटिंग पॉइंट
- double: 64-बिट फ्लोटिंग पॉइंट
- boolean: true या false
- char: 16-बिट यूनिकोड कैरेक्टर
public class DataTypes {
public static void main(String[] args) {
// इंटीजर टाइप्स
byte age = 25;
short year = 2024;
int population = 1000000;
long distance = 93000000L; // long के लिए L सफिक्स
// फ्लोटिंग पॉइंट टाइप्स
float temperature = 36.5f; // float के लिए f सफिक्स
double pi = 3.14159265359;
// बूलियन और कैरेक्टर
boolean isActive = true;
char grade = 'A';
// स्ट्रिंग (रेफरेंस टाइप)
String name = "Alice";
System.out.println("Name: " + name + ", Age: " + age);
}
}
3.1 स्ट्रिंग ऑपरेशन्स
Java में स्ट्रिंग्स ऑब्जेक्ट्स हैं, प्रिमिटिव टाइप्स नहीं:
public class StringExample {
public static void main(String[] args) {
String text = "Java Programming";
System.out.println("Length: " + text.length());
System.out.println("Uppercase: " + text.toUpperCase());
System.out.println("Lowercase: " + text.toLowerCase());
System.out.println("Character at index 0: " + text.charAt(0));
System.out.println("Substring: " + text.substring(0, 4));
System.out.println("Contains 'Java': " + text.contains("Java"));
// स्ट्रिंग कॉन्कैटिनेशन
String greeting = "Hello, " + "World!";
System.out.println(greeting);
// स्ट्रिंग फॉर्मेटिंग
String formatted = String.format("Pi is approximately %.2f", 3.14159);
System.out.println(formatted);
}
}
4. एरेज और कलेक्शन्स
4.1 एरेज
एरेज समान टाइप के कई वैल्यूज स्टोर करते हैं:
public class ArrayExample {
public static void main(String[] args) {
// एरे डिक्लेरेशन और इनिशियलाइज़ेशन
int[] numbers = {1, 2, 3, 4, 5};
String[] fruits = new String[3];
fruits[0] = "apple";
fruits[1] = "banana";
fruits[2] = "orange";
// एरे एलिमेंट्स को एक्सेस करना
System.out.println("First number: " + numbers[0]);
System.out.println("Array length: " + numbers.length);
// एरेज के माध्यम से इटरेट करना
for (int i = 0; i < numbers.length; i++) {
System.out.println("Number " + i + ": " + numbers[i]);
}
// एन्हांस्ड फॉर लूप (फॉर-इच)
for (String fruit : fruits) {
System.out.println("Fruit: " + fruit);
}
// मल्टी-डाइमेंशनल एरेज
int[][] matrix = {{1, 2}, {3, 4}, {5, 6}};
System.out.println("Matrix element [1][1]: " + matrix[1][1]);
}
}
4.2 कलेक्शन्स
Java Collections Framework डायनामिक डेटा स्ट्रक्चर प्रदान करता है:
import java.util.*;
public class CollectionsExample {
public static void main(String[] args) {
// ArrayList (डायनामिक एरे)
ArrayList<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
names.remove("Bob");
System.out.println("Names: " + names);
// HashMap (की-वैल्यू पेयर्स)
HashMap<String, Integer> ages = new HashMap<>();
ages.put("Alice", 25);
ages.put("Bob", 30);
ages.put("Charlie", 35);
System.out.println("Alice's age: " + ages.get("Alice"));
// HashSet (यूनीक एलिमेंट्स)
HashSet<Integer> uniqueNumbers = new HashSet<>();
uniqueNumbers.add(1);
uniqueNumbers.add(2);
uniqueNumbers.add(2); // डुप्लिकेट, जोड़ा नहीं जाएगा
uniqueNumbers.add(3);
System.out.println("Unique numbers: " + uniqueNumbers);
// कलेक्शन्स के माध्यम से इटरेट करना
for (String name : names) {
System.out.println("Name: " + name);
}
for (Map.Entry<String, Integer> entry : ages.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
5. ऑपरेशन्स और ऑपरेटर्स
Java विभिन्न ऑपरेशन्स के लिए विभिन्न ऑपरेटर्स प्रदान करता है:
- अरिथमेटिक ऑपरेटर्स:
+
,-
,*
,/
,%
(मॉड्यूलस),++
(इन्क्रीमेंट),--
(डिक्रीमेंट) - कम्पैरिजन ऑपरेटर्स:
==
,!=
,>
,<
,>=
,<=
- लॉजिकल ऑपरेटर्स:
&&
(और),||
(या),!
(नहीं) - बिटवाइज ऑपरेटर्स:
&
,|
,^
,~
,<<
,>>
,>>>
- असाइनमेंट ऑपरेटर्स:
=
,+=
,-=
,*=
,/=
,%=
public class OperatorsExample {
public static void main(String[] args) {
int a = 10, b = 3;
// अरिथमेटिक ऑपरेशन्स
System.out.println("Addition: " + (a + b));
System.out.println("Subtraction: " + (a - b));
System.out.println("Multiplication: " + (a * b));
System.out.println("Division: " + (a / b));
System.out.println("Modulus: " + (a % b));
// इन्क्रीमेंट और डिक्रीमेंट
System.out.println("Pre-increment: " + (++a));
System.out.println("Post-decrement: " + (b--));
// कम्पैरिजन ऑपरेशन्स
System.out.println("Equal: " + (a == b));
System.out.println("Not equal: " + (a != b));
System.out.println("Greater than: " + (a > b));
// लॉजिकल ऑपरेशन्स
boolean x = true, y = false;
System.out.println("AND: " + (x && y));
System.out.println("OR: " + (x || y));
System.out.println("NOT: " + (!x));
// असाइनमेंट ऑपरेशन्स
int c = 5;
c += 3; // c = c + 3
System.out.println("After += 3: " + c);
}
}
6. कंट्रोल फ्लो
6.1 कंडिशनल स्टेटमेंट्स
public class ConditionalExample {
public static void main(String[] args) {
int score = 85;
// if-else स्टेटमेंट
if (score >= 90) {
System.out.println("Grade: A");
} else if (score >= 80) {
System.out.println("Grade: B");
} else if (score >= 70) {
System.out.println("Grade: C");
} else {
System.out.println("Grade: F");
}
// टर्नेरी ऑपरेटर
String result = (score >= 60) ? "Pass" : "Fail";
System.out.println("Result: " + result);
// switch स्टेटमेंट
char grade = 'B';
switch (grade) {
case 'A':
System.out.println("Excellent!");
break;
case 'B':
System.out.println("Good!");
break;
case 'C':
System.out.println("Average");
break;
default:
System.out.println("Invalid grade");
}
}
}
6.2 लूप्स
public class LoopExample {
public static void main(String[] args) {
// for लूप
System.out.println("For loop:");
for (int i = 0; i < 5; i++) {
System.out.println("Iteration: " + i);
}
// एन्हांस्ड फॉर लूप (फॉर-इच)
System.out.println("\nFor-each loop:");
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println("Number: " + num);
}
// while लूप
System.out.println("\nWhile loop:");
int count = 0;
while (count < 3) {
System.out.println("Count: " + count);
count++;
}
// do-while लूप
System.out.println("\nDo-while loop:");
int x = 0;
do {
System.out.println("X: " + x);
x++;
} while (x < 3);
// break और continue
System.out.println("\nBreak and continue:");
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // लूप से बाहर निकलें
}
if (i % 2 == 0) {
continue; // सम संख्याओं को छोड़ें
}
System.out.println("Odd number: " + i);
}
}
}
7. मेथड्स (फ़ंक्शन्स)
Java में मेथड्स फ़ंक्शन्स हैं जो क्लासेस के अंतर्गत आते हैं:
public class MethodExample {
// बिना पैरामीटर्स और बिना रिटर्न वैल्यू के मेथड
public static void greet() {
System.out.println("Hello, World!");
}
// पैरामीटर्स और रिटर्न वैल्यू के साथ मेथड
public static int add(int a, int b) {
return a + b;
}
// कई पैरामीटर्स के साथ मेथड
public static String formatName(String firstName, String lastName) {
return firstName + " " + lastName;
}
// मेथड ओवरलोडिंग (समान नाम, अलग पैरामीटर्स)
public static int multiply(int a, int b) {
return a * b;
}
public static double multiply(double a, double b) {
return a * b;
}
// वेरिएबल आर्गुमेंट्स (varargs)
public static int sum(int... numbers) {
int total = 0;
for (int num : numbers) {
total += num;
}
return total;
}
public static void main(String[] args) {
greet();
int result = add(5, 3);
System.out.println("Addition result: " + result);
String fullName = formatName("John", "Doe");
System.out.println("Full name: " + fullName);
System.out.println("Multiply integers: " + multiply(4, 5));
System.out.println("Multiply doubles: " + multiply(2.5, 3.0));
System.out.println("Sum of multiple numbers: " + sum(1, 2, 3, 4, 5));
}
}
8. ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग
8.1 क्लासेस और ऑब्जेक्ट्स
public class Person {
// इंस्टेंस वेरिएबल्स (फील्ड्स)
private String name;
private int age;
private String email;
// कंस्ट्रक्टर
public Person(String name, int age, String email) {
this.name = name;
this.age = age;
this.email = email;
}
// डिफ़ॉल्ट कंस्ट्रक्टर
public Person() {
this("Unknown", 0, "");
}
// गेटर मेथड्स
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getEmail() {
return email;
}
// सेटर मेथड्स
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
if (age >= 0) {
this.age = age;
}
}
public void setEmail(String email) {
this.email = email;
}
// इंस्टेंस मेथड
public void introduce() {
System.out.println("Hi, I'm " + name + ", " + age + " years old.");
}
// लॉजिक के साथ मेथड
public boolean isAdult() {
return age >= 18;
}
// toString मेथड (Object के toString को ओवरराइड करना)
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + ", email='" + email + "'}";
}
public static void main(String[] args) {
// ऑब्जेक्ट्स बनाना
Person person1 = new Person("Alice", 25, "[email protected]");
Person person2 = new Person();
// मेथड्स का उपयोग
person1.introduce();
System.out.println("Is adult: " + person1.isAdult());
person2.setName("Bob");
person2.setAge(17);
person2.setEmail("[email protected]");
System.out.println(person1.toString());
System.out.println(person2.toString());
}
}
यह संपूर्ण Java ट्यूटोरियल Java प्रोग्रामिंग की शुरुआत करने के लिए आवश्यक मूलभूत अवधारणाओं को कवर करता है। भाषा की मजबूत टाइपिंग, ऑब्जेक्ट-ओरिएंटेड सुविधाएं, और व्यापक मानक लाइब्रेरी इसे मजबूत एप्लिकेशन बनाने के लिए शक्तिशाली बनाती है। इन उदाहरणों का अभ्यास करें और Java प्रोग्रामिंग अवधारणाओं की गहरी समझ के लिए कोड के साथ प्रयोग करें।